package vista;



import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import modelo.Factura;
import modelo.Usuario;
import modelo.UsuarioView;

import controlador.TelefoniaMovil;

public class Facturar extends JFrame {
	/**
	 * 
	 */
	private TelefoniaMovil tm;
	private JTable tabla;
	private JScrollPane scrollPane;
	private JButton facturarButton;
	private JButton cancelarButton;
	private JLabel periodo;
	private JComboBox comboMes;
	private JComboBox comboAno;
	private JFrame frame;
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Facturar f = new Facturar();
		f.setVisible(true);
	}
	
	public Facturar (TelefoniaMovil tm) {
		
		this.tm = tm;
		initGUI();
		
	}
	

	public Facturar() {
		
		initGUI();
		
	}
	
	public void llenarTabla(){
		Vector usuarios = tm.obtenerUsuario();
		
		Vector columnas = new Vector();
		columnas.add("Dni");
		columnas.add("Nombre");
		columnas.add("Apellido");
		columnas.add("Domicilio");
		columnas.add("Telefono");
			
		tabla = new JTable(usuarios, columnas);
		scrollPane = new JScrollPane(tabla);
		scrollPane.setBounds(14, 14, 350, 189);
		getContentPane().add(scrollPane);
		
	}
	
	
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			
			llenarTabla();
			
			Date desde =new Date();
			periodo =  new JLabel();
			periodo.setText("Periodo:");
			periodo.setBounds(20, 230, 60, 30);
			getContentPane().add(periodo);
			
			comboMes =  new JComboBox();
			comboMes.setBounds(70, 230, 50, 28);
			
			for (int x=1; x<13;x++)
				comboMes.addItem(x);
			
			comboAno =  new JComboBox();
			comboAno.setBounds(130, 230, 70, 28);
			comboAno.addItem(2012);
			comboAno.addItem(2013);
			
			getContentPane().add(comboMes);
			getContentPane().add(comboAno);
			
			facturarButton =  new JButton();
			facturarButton.setText("Facturar");
			facturarButton.setBounds(100, 300, 90, 30);
			getContentPane().add(facturarButton);
			facturarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					
					int registro = tabla.getSelectedRow();
					if (registro == -1){
						JOptionPane.showMessageDialog(null, "Debe Selccionar un usuario", "Ejecutar Factura", JOptionPane.ERROR_MESSAGE);
					}else{
						
						
						Date desde=new Date();
						int month=Integer.parseInt(comboMes.getSelectedItem().toString());
						int year=Integer.parseInt(comboAno.getSelectedItem().toString());
						
											
						//desde.setMonth(month);
						//desde.setYear(year);
						//System.out.println("------------>"+desde.getYear());
						int dniUsuario = (Integer) tabla.getValueAt(registro, 0);
						Usuario user = tm.buscarUsuario(dniUsuario);
						boolean fact = tm.facturar(month,year,user);
						if (fact){
							JOptionPane.showMessageDialog(frame, "Facturas Generadas con Exito");		
						}else
							JOptionPane.showMessageDialog(frame, "No existen consumos");
					dispose();
					}
				}
			});
			
			cancelarButton =  new JButton();
			cancelarButton.setText("Cancelar");
			cancelarButton.setBounds(230, 300, 90, 30);
			getContentPane().add(cancelarButton);
			cancelarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					dispose();
				}
			});
			setTitle("Facturar");
			pack();
			this.setSize(400, 400);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

